### 14.1.1 干什么 `sys/random.h` 声明 `getrandom` 接口,直接从内核 CSPRNG(cryptographically secure pseudorandom number generator,密码学安全伪随机数生成器,输出在不知内部状态时不可预测)向用户态缓冲取随机字节。它是密钥、令牌、nonce(number used once,一次性随机数)的安全来源。 它的职责边界是这样的。本库不自带随机算法,只把内核 CRNG(cryptographic random number generator,内核密码学随机生成器)池的输出经系统调用递交用户态。序列递推、种子管理全部在内核完成。用户态线性同余序列由 `stdlib.h` 的 `rand`/`srand` 承担,与本库不是同一来源。 ### 14.1.2 谁在调 * TLS 库(OpenSSL、BoringSSL 等)生成会话密钥与随机分量时调 `getrandom` 取内核随机字节。 * 应用生成会话标识、密码重置令牌、密码盐时从本库或 `/dev/urandom` 取随机材料。